'''
功能：生成质数，使用筛法，跳过偶数。并给出计算时间。
缺点：is_primes没有跳过偶数，浪费了一些内存。
i7-13700f：100000000位，计算时间为: 3.6711506843566895秒
'''
import time

def generate_primes(limit):
    if limit < 2:
        return []
    elif limit == 2:
        return [2]
    if limit & 1:
        is_primes = [False] * 2 + [True] + [True, False] * ((limit - 2) // 2) + [True]
    else:
        is_primes = [False] * 2 + [True] + [True, False] * ((limit - 1) // 2)
    for i in range(3, int(limit ** 0.5) + 1, 2):
        if is_primes[i]:
            for j in range(i ** 2, limit + 1, i * 2):
                is_primes[j] = False
    primes = [2] + [i for i in range(3, limit + 1, 2) if is_primes[i]]
    return primes

start_time = time.time()
#limit = int(input("请输入一个整数上限: "))
limit = 100000000
generate_primes(limit)
end_time = time.time()
print(f"计算时间为: {end_time - start_time}秒")